﻿Public Class DetalleProductos 
    Public equivalencia As Integer
    Private Sub ProductosBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ProductosBindingNavigatorSaveItem.Click
        Me.Validate()
        Me.ProductosBindingSource.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.DbFireAndIceDataSet)

    End Sub

    Private Sub DetalleProductos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'TODO: This line of code loads data into the 'DbFireAndIceDataSet.itemventadetalle' table. You can move, or remove it, as needed.
        Me.ItemventadetalleTableAdapter.Fill(Me.DbFireAndIceDataSet.itemventadetalle)
        'TODO: This line of code loads data into the 'DbFireAndIceDataSet.unidadescategoria' table. You can move, or remove it, as needed.
        Me.UnidadescategoriaTableAdapter.Fill(Me.DbFireAndIceDataSet.unidadescategoria)
        'TODO: This line of code loads data into the 'DbFireAndIceDataSet.unidadesdemedida' table. You can move, or remove it, as needed.
        Me.UnidadesdemedidaTableAdapter.Fill(Me.DbFireAndIceDataSet.unidadesdemedida)
        'TODO: This line of code loads data into the 'DbFireAndIceDataSet.itemventa' table. You can move, or remove it, as needed.
        Me.ItemventaTableAdapter.Fill(Me.DbFireAndIceDataSet.itemventa)
        'TODO: This line of code loads data into the 'DbFireAndIceDataSet.productoscategoria' table. You can move, or remove it, as needed.
        Me.ProductoscategoriaTableAdapter.Fill(Me.DbFireAndIceDataSet.productoscategoria)
        'TODO: This line of code loads data into the 'DbFireAndIceDataSet.bodega' table. You can move, or remove it, as needed.
        Me.BodegaTableAdapter.Fill(Me.DbFireAndIceDataSet.bodega)
        'TODO: This line of code loads data into the 'DbFireAndIceDataSet.tipoproducto' table. You can move, or remove it, as needed.
        Me.TipoproductoTableAdapter.Fill(Me.DbFireAndIceDataSet.tipoproducto)
        'TODO: This line of code loads data into the 'DbFireAndIceDataSet.productos' table. You can move, or remove it, as needed.
        'Me.ProductosTableAdapter.Fill(Me.DbFireAndIceDataSet.productos)
        IdproductoTextEdit.EditValue = My.Forms.HFAgregarProducto.IdproductoTextBox.Text
        DescripcionTextEdit.EditValue = My.Forms.HFAgregarProducto.DescripcionTextBox.Text
        IdunidadescategoriaLookUpEdit.EditValue = My.Forms.HFAgregarProducto.ComboBox1.SelectedValue
        PreciocomprauniTextEdit.EditValue = 0
        Precioventa2TextEdit.EditValue = 0

        PrecioventaTextEdit.EditValue = 0
        ExistenciaTextEdit.EditValue = My.Forms.HFAgregarProducto.ExistenciaTextBox.Text
    End Sub

    Private Sub guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles guardar.Click
        

        If DescripcionTextEdit.Text = "" Then
            ErrorProvider1.SetError(DescripcionTextEdit, "Debe ingresar una descripcion del Producto")
        Else
            ErrorProvider1.SetError(DescripcionTextEdit, Nothing)

            If IdproductoscategoriaLookUpEdit.Text = "" Then
                ErrorProvider1.SetError(IdproductoscategoriaLookUpEdit, "Debe ingresar una Categoría de Producto")
            Else
                ErrorProvider1.SetError(IdproductoscategoriaLookUpEdit, Nothing)

                If IdbodegaLookUpEdit.Text = "" Then
                    ErrorProvider1.SetError(IdbodegaLookUpEdit, "Debe ingresar una Bodega de almacen")
                Else
                    ErrorProvider1.SetError(IdbodegaLookUpEdit, Nothing)

                    If IdtipoLookUpEdit.Text = "" Then
                        ErrorProvider1.SetError(IdtipoLookUpEdit, "Debe ingresar un Tipo de Producto")
                    Else
                        ErrorProvider1.SetError(IdtipoLookUpEdit, Nothing)

                        If IdunidadescategoriaLookUpEdit.Text = "" Then
                            ErrorProvider1.SetError(IdunidadescategoriaLookUpEdit, "Debe ingresar una Categoría Unidad")
                        Else
                            ErrorProvider1.SetError(IdunidadescategoriaLookUpEdit, Nothing)

                            If PreciocomprauniTextEdit.EditValue = 0 Then
                                ErrorProvider1.SetError(PreciocomprauniTextEdit, "Debe ingresar un Costo Unitario del Producto")
                            Else
                                ErrorProvider1.SetError(PreciocomprauniTextEdit, Nothing)

                                If PrecioventaTextEdit.EditValue = 0 Then
                                    ErrorProvider1.SetError(PrecioventaTextEdit, "Debe ingresar un Precio Venta #1 del Producto")
                                Else
                                    ErrorProvider1.SetError(PrecioventaTextEdit, Nothing)

                                    If Precioventa2TextEdit.EditValue = 0 Then
                                        ErrorProvider1.SetError(Precioventa2TextEdit, "Debe ingresar un Precio Venta #2 del Producto")
                                    Else
                                        ErrorProvider1.SetError(Precioventa2TextEdit, Nothing)

                                        If ExistenciaTextEdit.EditValue = 0 Then
                                            ErrorProvider1.SetError(ExistenciaTextEdit, "Debe ingresar una Existencia del Producto ya sea de 0")
                                        Else
                                            ErrorProvider1.SetError(ExistenciaTextEdit, Nothing)

                                            If IdunidadLookUpEdit.Text = "" Then
                                                ErrorProvider1.SetError(IdunidadLookUpEdit, "Debe ingresar una Unidad del Producto ya sea de 0")
                                            Else
                                                ErrorProvider1.SetError(IdunidadLookUpEdit, Nothing)

                                                If TextEdit2.EditValue = 0 Then
                                                    ErrorProvider1.SetError(TextEdit2, "Debe ingresar una cantidad del Producto ya sea de 0")
                                                Else
                                                    ErrorProvider1.SetError(TextEdit2, Nothing)

                                                    Try
                                                        Dim id As Integer = ItemventaTableAdapter.ScalarQueryitem + 1
                                                        ProductosTableAdapter.InsertQueryProductos(IdproductoTextEdit.EditValue, DescripcionTextEdit.EditValue, IdproductoscategoriaLookUpEdit.EditValue, ObservacionTextEdit.EditValue, Val(PreciocomprauniTextEdit.EditValue), IdbodegaLookUpEdit.EditValue, IdtipoLookUpEdit.EditValue, IdunidadescategoriaLookUpEdit.EditValue, Val(PrecioventaTextEdit.EditValue), Val(Precioventa2TextEdit.EditValue), Val(ExistenciaTextEdit.EditValue))
                                                        ItemventaTableAdapter.InsertQueryItem(id, DescripcionTextEdit.EditValue, DescripcionTextEdit.EditValue, Val(PreciocomprauniTextEdit.EditValue), Val(PrecioventaTextEdit.EditValue), ObservacionTextEdit.EditValue, IdtipoLookUpEdit.EditValue, Val(Precioventa2TextEdit.EditValue), False)
                                                        ItemventadetalleTableAdapter.InsertQueryItemdetalle(id, Val(IdproductoTextEdit.EditValue), 1, Val(PreciocomprauniTextEdit.EditValue), Val(PreciocomprauniTextEdit.EditValue))
                                                        My.Forms.HFAgregarProducto.UnidadescategoriaTableAdapter.Fill(Me.DbFireAndIceDataSet.unidadescategoria)
                                                        My.Forms.HFAgregarProducto.UnidadescategoriaTableAdapter.Fill(Me.DbFireAndIceDataSet.unidadescategoria)
                                                        My.Forms.HFAgregarProducto.ProductosTableAdapter.Fill(Me.DbFireAndIceDataSet.productos)
                                                        My.Forms.HFAgregarProducto.IdproductoTextBox.ReadOnly = True
                                                        My.Forms.HFAgregarProducto.DescripcionTextBox.ReadOnly = True
                                                        My.Forms.HFAgregarProducto.ComboBox1.Enabled = False
                                                    Catch ex As Exception
                                                        AlertControl1.Show(Owner, "ERROR", "No se pudo Insertar el registro")
                                                    End Try
                                                    Me.Close()

                                                End If
                                            End If
                                        End If
                                    End If
                                End If
                            End If
                        End If
                    End If
                End If
            End If
        End If



    End Sub

    Private Sub IdunidadLookUpEdit_EditValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles IdunidadLookUpEdit.EditValueChanged
        If IdunidadLookUpEdit.GetColumnValue("equivalenciauref") Is DBNull.Value Then
            equivalencia = 1
            TextEdit1.EditValue = TextEdit2.EditValue * 1

        Else
            equivalencia = IdunidadLookUpEdit.GetColumnValue("equivalenciauref")
            TextEdit1.EditValue = TextEdit2.EditValue * equivalencia
        End If

        TextEdit1.EditValue = TextEdit2.EditValue * equivalencia
    End Sub

    Private Sub TextEdit2_EditValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextEdit2.EditValueChanged
        TextEdit1.EditValue = TextEdit2.EditValue * equivalencia
        ExistenciaTextEdit.EditValue = TextEdit1.EditValue
    End Sub

    Private Sub IdunidadescategoriaLookUpEdit_EditValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles IdunidadescategoriaLookUpEdit.EditValueChanged
        If IdunidadescategoriaLookUpEdit.GetColumnValue("idunidadescategoria") Is DBNull.Value Then

        Else

            Dim id As Integer = IdunidadescategoriaLookUpEdit.GetColumnValue("idunidadescategoria")
            UnidadesdemedidaTableAdapter.FillByUnidades(DbFireAndIceDataSet.unidadesdemedida, id)
        End If
    End Sub


End Class